WritableStream
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since May 2022.
* Some parts of this feature may have varying levels of support.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die WritableStream
-Schnittstelle der Streams-API bietet eine standardisierte Abstraktion zum Schreiben von Streaming-Daten an ein Ziel, das als Sink bezeichnet wird. Dieses Objekt verfügt über integrierten Gegendruck und Warteschlangen.
WritableStream
ist ein transferierbares Objekt.
Konstruktor
WritableStream()
-
Erstellt ein neues
WritableStream
-Objekt.
Instanz-Eigenschaften
WritableStream.locked
Schreibgeschützt-
Ein Boolean-Wert, der angibt, ob das
WritableStream
an einen Schreiber gebunden ist.
Instanz-Methoden
WritableStream.abort()
-
Bricht den Stream ab und signalisiert, dass der Produzent nicht mehr erfolgreich in den Stream schreiben kann und dieser sofort in einen Fehlerzustand versetzt wird, wobei alle wartenden Schreibvorgänge verworfen werden.
WritableStream.close()
-
Schließt den Stream.
WritableStream.getWriter()
-
Gibt eine neue Instanz von
WritableStreamDefaultWriter
zurück und sperrt den Stream für diese Instanz. Solange der Stream gesperrt ist, kann kein anderer Schreiber erworben werden, bis dieser freigegeben wird.
Beispiele
Das folgende Beispiel veranschaulicht mehrere Funktionen dieser Schnittstelle. Es erstellt das WritableStream
mit einem benutzerdefinierten Sink. Dann wird die getWriter()
-Methode des Streams aufgerufen, die eine Instanz von WritableStreamDefaultWriter
zurückgibt. Anschließend werden mehrere Zeichenfolgen in den Stream geschrieben. Schließlich gibt close()
ein Promise zurück, das aufgelöst wird, wenn alle Schreibvorgänge erfolgreich abgeschlossen sind.
const writableStream = new WritableStream(
// Implement the sink
{
write(chunk) {
const textElement = document.getElementById("text-output");
textElement.textContent += chunk;
},
},
);
const writer = writableStream.getWriter();
try {
writer.write("Hello, ");
writer.write("world!\n");
writer.write("This has been a demo!\n");
await writer.close(); // wait for all chunks to be written
console.log("All chunks written");
} catch (error) {
console.error("Stream error: ", error);
}
Dieses Beispiel unterstützt nicht die Gegendruck-Funktion der Streams.
Spezifikationen
Specification |
---|
Streams # ws-class |
Browser-Kompatibilität
Siehe auch
- WHATWG Stream Visualizer, für eine grundlegende Visualisierung von lesbaren, schreibbaren und Transformationsströmen.